package main

import (
	"sort"
)

func main() {

}

/*
*
给定数组 people 。people[i]表示第 i 个人的体重 ，船的数量不限，每艘船可以承载的最大重量为 limit。

每艘船最多可同时载两人，但条件是这些人的重量之和最多为 limit。

返回 承载所有人所需的最小船数 。

输入：people = [1,2], limit = 3
输出：1
解释：1 艘船载 (1, 2)
*/
func numRescueBoats(people []int, limit int) int {
	// 先排序
	sort.Ints(people)

	left, right := 0, len(people)-1
	var ans int
	for left <= right {
		// 左边最小的+右边最大的都 < limit ，那证明这2个人可以做一条船
		if people[left]+people[right] <= limit {
			left++
			right--
		} else {
			// 不然就体重大的单独坐一艘
			right--
		}
		// 如果还剩一个人，那这个人单独一艘船
		if left == right {
		}
		ans++
	}
	return ans
}
